
// 参数含义参考函数 即方法 次数 等待时间
// 这是函数嵌套方法
function repeat(fn, timer, wait) {
    return function callback(...args) {
        setTimeout(() => {
            fn(...args);
            timer--;
            if (timer > 0) callback(...args);
        }, wait);
    };
}
// repeat(console.log, 5, 1000)('1')
// 用Promise呢
function one(func,wait,args){
    return new Promise((resolve,reject)=>{
        setTimeout(()=>{
            func.call(this,...args)
            resolve()
        },wait)
    })
}
function repeat(func, times, wait) {
    return async function(...args){
        for (let i = 1; i <= times; i++) {
            await one(func,wait,args)
        }
    }

}
const repeatLog = repeat(console.log,5,1000)
repeatLog("hello world")

